#pragma once

//Commander Enmus
enum	eGameStates
{
	INIT_STATE,
	MENU_STATE,
	UPDATE_STATE,
	QUIT_STATE,
	GAME_STATE_SIZE
};
enum	eTimeCommands
{
	SETTIME,
	CHECKTIME
};

//Messaging Enums
enum	eMessage
{
	NULL_MESSAGE,
	DAMAGE,
	HEAL,
	GIVE,
	STATS_HEALTH,
	STATS_EXP,
	FOUND,
	MESSAGE_SIZE
};

//Graphix Enums
enum	eMeshs
{
	WALL_MESH,
	FILLER_MESH,
	CHARACTER_MESH,
	ENEMY_MESH,
	COIN_MESH,
	MESH_SIZE
};
enum	eTextures
{
	GREEN_TEXTURE,
	YELLOW_TEXTURE,
	RED_TEXTURE,
	PLAYER_TEXTURE,
	MENU_TEXTURE,
	PRESSED_BUTTON_ONE,
	PRESSED_BUTTON_TWO,
	PRESSED_BUTTON_THREE,
	TEXTURE_SIZE
};

//Text Enums
enum	eScreenPositions
{
	TOPLEFT,
	TOPRIGHT,
	SCREEN_POS_SIZE
};

//Lights Enums
enum	eAllLights
{
	CHARACTER_LIGHT,
	WORLD_LIGHT,
	AllLightsSize
};

//World Enums
enum	eDirections
{
	NORTH,
	SOUTH,
	EAST,
	WEST,
	NullDirection
};

//Entity Enums
enum	eObjectType
{
	NO_TYPE,
	PLAYER_TYPE,
	SWORD_TYPE,
	ENEMY_TYPE,
	ITEM_TYPE,
	WALL_TYPE,
	FILLER_TYPE,
	MENU_TYPE,
	TYPE_SIZE
};
enum	ePickUpType
{
	PU_NO_TYPE,
	END_MARKER_TYPE,
	GOLD_TYPE,
	PICKUP_TYPE_SIZE
};


//AI Enums
enum	eAIDirections
{
	AI_UP_DIR,
	AI_DOWN_DIR,
	AI_LEFT_DIR,
	AI_RIGHT_DIR,
	AI_DIGLFTUP_DIR,
	AI_DIGRGTUP_DIR,
	AI_DIGLFTDW_DIR,
	AI_DIGRGTDW_DIR,
	AI_DIRECTIONS_SIZE
};
enum	eAIStates
{
	AI_ATTACK_STATE,
	AI_IDLE_STATE,
	AI_STATE_SIZE
};
enum	eEntityStates
{
	IDLE_STATE,
	ATTACK_STATE,
	ENEMY_SIZE_STATE
};

//Input Enums
enum	eCoordType
{
	XCOORD_TYPE,
	YCOORD_TYPE,
	COORD_TYPE_SIZE
};
enum	eMouseButtons
{
	LEFT_MOUSE_BUTTON,
	RIGHT_MOUSE_BUTTON,
	MIDDLE_MOUSE_BUTTON
};

//Menu Enums
enum	eMenuStates
{
	IDLE,
	PRESSED_ONE,
	PRESSED_TWO,
	PRESSED_THREE,
	MENU_STATE_SIZE
};
enum	eMenuButtons
{
	BUTTON_ONE,
	BUTTON_TWO,
	BUTTON_THREE,
	MENU_BUTTONS_SIZE
};
enum	eMenuTextLocations
{
	HEALTH_TEXT,
	EXPERIENCE_TEXT,
	BUTTON_ONE_TEXT,
	BUTTON_TWO_TEXT,
	BUTTON_THREE_TEXT,
	MENU_TEXT_LOC_SIZE
};

//Sound Enums
enum	eSounds
{
	ENEMY_ATTACK_SOUND,
	SOUNDS_SIZE
};